package com.itheima.tlias84.controller;

import com.itheima.tlias84.Util.ResultUtil;
import com.itheima.tlias84.entity.Dept;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 测试ioc与di
 * 测试用IO有关 C和DI时候
 * Bean对象的创建和获取都和IOC容器有关
 * Bean对象之间搭配使用
 */
@Slf4j
@RestController
@RequestMapping("ioc_id")
public class TestIOCAndDIController {

    /**
     * @Resource 优先属性注入使用
     *           默认按照Bean名字从容器中获取
     *           默认的SpringBean名字是类对应的小驼峰
     *           不同包下有可能存在同名类
     *           解决办法 ->
     * @Component注解在创建Bean对象时指定名字
     * @Resource 从ioc容器获取时也能指定名字
     */
    @Autowired
            Dept dept;

    @GetMapping("dept")
    public ResultUtil testDeptByIoc() {
        log.info("自动创建的dept对象{}",dept);
        return ResultUtil.success();
    }

}
